import { defineStore } from 'pinia'

const useUserStore = defineStore('user', {
  state: () => {
    return {
      // 定义状态
      userInfo: [], // 用户信息
      token: '', // token
      loginStatus: false, // 登录状态
    }
  },
  actions: {
    // 定义 actions，可以包含异步操作
    async userLogin(user) {
      this.userInfo = user
      this.token = user.token
      this.loginStatus = true
      localStorage.setItem('userInfoCache', JSON.stringify(user))
    },
    /** 获取数据 */
    initUser() {
      const userInfo = JSON.parse(localStorage.getItem('userInfoCache'))
      if (userInfo) {
        this.loginStatus = true
        this.token = userInfo.token
        this.userInfo = userInfo
      }
    },
    //退出登录
    loginOut() {
      this.loginStatus = false
      this.token = null
      this.userInfo = {}
      localStorage.removeItem('userInfoCache')
    },
  },
  getters: {
    // 定义 getters，类似于计算属性
  },
})
export default useUserStore
